package database;

import pincipal.pack.AgregarPresupuesto;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.widget.Toast;

public abstract class Consulta 
{
	static public void insertMaterial(Context context , int id, String especificacion, String unidad, String costoUF, String observacion)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();   	 
        ContentValues material = new ContentValues();
        material.put("_id",id);
        material.put("especificacion", especificacion);
        material.put("unidad",unidad);
        material.put("costoUF",costoUF);
        material.put("observacion",observacion);      
        if(db != null)
        {
        	db.insert("Material", null, material);
            db.close();
        }
    }
	
	static public void insertIdentificador(Context context , int id, String tipo)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();   	 
        ContentValues identificador = new ContentValues();
        identificador.put("id",id);
        identificador.put("tipo", tipo);             
        if(db != null)
        {
        	db.insert("Identificador", null, identificador);
            db.close();
        }
    }

	static public void editIdentificador(Context context, int id, String tipo)
	{  	
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        ContentValues identificador = new ContentValues();
        identificador .put("id",id);
        identificador .put("tipo", tipo);    
        int cant = bd.update("Identificador", identificador , "tipo="+"'"+tipo+"'", null);
        bd.close();
    }
	
	static public Cursor consultIdentificador(Context context, String tipoEntidad) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();        
        Cursor fila= bd.rawQuery("select * from Identificador where tipo="+tipoEntidad+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
	
	static public Cursor consultRendimientoMaterial(Context context, String idMaterial) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        Cursor fila= bd.rawQuery("select * from Material where especificacion="+idMaterial+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
	
	
	static public void consultMaterial(Context context, int idMaterial) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();
        Cursor fila= bd.rawQuery("select * from Material where _id="+idMaterial+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();            
    } 
	
	static public Cursor consultMaterialNombre(Context context, String nombreMaterial) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        Cursor fila= bd.rawQuery("select * from Material where especificacion="+"'"+nombreMaterial+"'"+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);   
        bd.close(); 
        return fila;
    }
	
	static public Cursor consultPartidaNombre(Context context, String nombrePartida) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        Cursor fila= bd.rawQuery("select * from Partida where nombre="+"'"+nombrePartida+"'"+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);      
        bd.close(); 
        return fila;
    } 
	
	static public Cursor consultNombreMaterial(Context context, String nombreMaterial) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();     
        Cursor fila= bd.rawQuery("select * from Material where especificacion="+nombreMaterial+" COLLATE NOCASE",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    }  
	
	static public Cursor consultNombrePartida(Context context, String nombrePartida) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();     
        Cursor fila= bd.rawQuery("select * from Partida where nombre="+nombrePartida+" COLLATE NOCASE",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    }  
	
	static public Cursor consultMaterialPartida(Context context, String nombrePartida, String nombreMaterial) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();      
        Cursor fila= bd.rawQuery("select * from MaterialesPartida where idPartida='"+nombrePartida+"' and idMaterial='"+nombreMaterial+"'",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    }  
	
	static public Cursor consultMaterialPartidaReferencia(Context context, String nombreMaterial) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        Cursor fila= bd.rawQuery("select * from MaterialesPartida where idMaterial='"+nombreMaterial+"'",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    }  
	
	static public Cursor consultPartidaPresupuestoReferencia(Context context, String nombrePartida) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();     
        Cursor fila= bd.rawQuery("select * from PartidasPresupuesto where idPartida='"+nombrePartida+"'",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    }  
	
	static public Cursor consultPartidaPresupuesto(Context context, String nombrePartida, String nombrePresupuesto) 
	{
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();      
        Cursor fila= bd.rawQuery("select * from PartidasPresupuesto where idPresupuesto='"+nombrePresupuesto+"' and idPartida='"+nombrePartida+"'",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    }  
	
	static public void insertPartida(Context context , int id, String nombre,String observaciones)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();   	 
        ContentValues partida = new ContentValues();
        partida.put("id",id);
        partida.put("nombre", nombre);
        partida.put("observaciones",observaciones);        
        if(db != null)
        {
        	db.insert("Partida", null, partida);
            db.close();
        }
    }
	
	static public void insertPresupuesto(Context context , int id, String nombre,String fecha, String total)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();    	 
        ContentValues presupuesto = new ContentValues();
        presupuesto.put("id",id);
        presupuesto.put("nombre", nombre);
        presupuesto.put("fecha", fecha);
        presupuesto.put("total",total);           
        if(db != null)
        {
        	db.insert("Presupuesto", null, presupuesto);
            db.close();
        }
    }
	
    
    static public void deleteMaterial(Context context, int id) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getWritableDatabase();          
        int cant=bd.delete("Material", "_id="+id+"",null);       
        bd.close();          
    }
    
    static public void insertMaterialPartida(Context context , String partida, String material, String rendimiento)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();   	 
        ContentValues materialPartida = new ContentValues();
        materialPartida.put("idPartida", partida);
        materialPartida.put("idMaterial",material);
        materialPartida.put("rendimiento",rendimiento);  
        if(db != null)
        {
        	db.insert("MaterialesPartida", null, materialPartida);
        	db.close();
        }
    }
    
    static public void insertPartidaPresupuesto(Context context , String presupuesto, String nombrePartida, String cantidad)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();  	 
        ContentValues partida = new ContentValues();
        partida.put("idPartida", nombrePartida);
        partida.put("idPresupuesto",presupuesto);
        partida.put("cantidad",cantidad);  
        if(db != null)
        {
        	db.insert("PartidasPresupuesto", null, partida);
        	db.close();
        }
    }
    
    static public void editMaterial(Context context, int id, String especificacion, String unidad, String costoUF, String observacion) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        ContentValues material = new ContentValues();
        material.put("_id",id);
        material.put("especificacion", especificacion);
        material.put("unidad",unidad);
        material.put("costoUF",costoUF);
        material.put("observacion",observacion);      
        int cant = bd.update("Material", material, "_id="+id, null);
        bd.close();
    }
    
    static public void editPartida(Context context, int id, String nombreOriginal, String nombreNuevo, String observacion)
    {
     	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        ContentValues partida = new ContentValues();
        partida.put("id",id);
        partida.put("nombre", nombreNuevo);
        partida.put("observaciones",observacion);      
        int cant = bd.update("Partida", partida, "nombre="+"'"+nombreOriginal+"'", null);
        bd.close();
    }
    
    static public void editMaterialPartida(Context context, String idPartida, String nombreNuevo, String idMaterial, String rendimiento) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        ContentValues partida = new ContentValues();
        partida.put("idPartida",nombreNuevo);
        partida.put("idMaterial", idMaterial);
        partida.put("rendimiento",rendimiento);      
        int cant = bd.update("MaterialesPartida", partida, "idPartida="+"'"+idPartida+"'" +" and idMaterial="+"'"+idMaterial+"'"+"", null);
        bd.close();
    }
    
    static public void editPartidaPresupuesto(Context context, String idPresupuesto, String nombreNuevo, String idPartida, String cantidad) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        ContentValues partida = new ContentValues();
        partida.put("idPresupuesto",nombreNuevo);
        partida.put("idPartida", idPartida);
        partida.put("cantidad",cantidad);      
        int cant = bd.update("PartidasPresupuesto", partida, "idPresupuesto="+"'"+idPresupuesto+"'" +" and idPartida="+"'"+idPartida+"'"+"", null);
        bd.close();
    }
    
    static public void insertUnidad(Context context, int id, String unidad)
    {
        DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase db = dbh.getWritableDatabase();   	 
        ContentValues Unidad = new ContentValues();
        Unidad.put("id", id);
        Unidad.put("unidad", unidad);

        if(db != null)
        {
        	db.insert("Unidad", null, Unidad);
            db.close();
        }
    }
    
    static public Cursor consultUnidad(Context context, int id) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select unidad from Unidad where id="+id+"",null);        
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
    
    static public Cursor consultNombrePresupuesto(Context context, String nombrePresupuesto) 
    {  	
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from Presupuesto where nombre="+nombrePresupuesto+" COLLATE NOCASE",null);      
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
 
    static public Cursor consultMateriales(Context context) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
    	SQLiteDatabase bd = dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from Material",null);      
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
    
    static public Cursor consultUnidades(Context context) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
    	SQLiteDatabase bd = dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from Unidad",null);       
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
   
    static public Cursor consultPartidas(Context context) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from Partida",null);       
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
    
    static public Cursor consultMaterialesPartida(Context context, String idPartida) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();         
        Cursor fila= bd.rawQuery("select * from MaterialesPartida where idPartida="+"'"+idPartida+"'"+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
    
    
    static public Cursor consultPartidasPresupuesto(Context context, String idPres) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();         
        Cursor fila= bd.rawQuery("select * FROM PartidasPresupuesto where idPresupuesto="+"'"+idPres+"'"+"",null);
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
    
    static public void deletePartida(Context context, String nombrePartida) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getWritableDatabase();          
        int cant=bd.delete("Partida", "nombre="+nombrePartida+"",null);
        int cant1 = bd.delete("MaterialesPartida", "idPartida="+nombrePartida+"",null);
        bd.close();         
    }
    
    static public void deleteMaterialPartida(Context context, String nombrePartida, String nombreMaterial) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getWritableDatabase();          
        int cant=bd.delete("MaterialesPartida", "idPartida="+nombrePartida+" and idMaterial="+nombreMaterial+"",null);
        bd.close();         
    }
    
    static public void deletePresupuesto(Context context, String nombrePresupuesto)
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getWritableDatabase();          
        int cant=bd.delete("Presupuesto", "nombre="+nombrePresupuesto+"",null);
        int cant1 = bd.delete("PartidasPresupuesto", "idPresupuesto="+nombrePresupuesto+"",null);
        bd.close();        
    }
    
    static public Cursor consultAllMaterialOfPartida(Context context)
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from MaterialesPartida",null);
        bd.close();
    	return fila;
    }
    
    static public Cursor consultAllPartidasOfPresupuestos(Context context)
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from MaterialesPartida",null);
        bd.close();
    	return fila;
    }
	
    static public Cursor consultPresupuestos(Context context) 
    {
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase(); 
        Cursor fila= bd.rawQuery("select * from Presupuesto",null);       
        int columnCount = fila.getColumnCount();
        String col = String.valueOf(columnCount);
        int count = fila.getCount();
        String co = String.valueOf(count);
        bd.close();  
        return fila;
    } 
    

    static public void editPresupuesto(Context context, String nombreOriginal, String nombre, String fecha, String total) 
    {   	
    	DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
        SQLiteDatabase bd= dbh.getReadableDatabase();       
        ContentValues presupuesto = new ContentValues();
        presupuesto.put("nombre", nombre);
        presupuesto.put("fecha", fecha);
        presupuesto.put("total", total);
        int cant = bd.update("Presupuesto", presupuesto, "nombre="+"'"+nombreOriginal+"'", null);
        bd.close();
    }

	static public void deletePartidaPresupuesto(Context context, String nombrePresupuesto, String nombrePartida) 
	{
		DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
	    SQLiteDatabase bd= dbh.getWritableDatabase();          	    
	    int cant = bd.delete("PartidasPresupuesto", "idPresupuesto="+nombrePresupuesto+" and " + "idPartida=" + nombrePartida ,null);
	    bd.close();        
	}

	static public Cursor consultAllUF(Context context) 
	{	
		DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
		SQLiteDatabase bd = dbh.getReadableDatabase(); 
	    Cursor fila= bd.rawQuery("select * from UF",null);    
	    int columnCount = fila.getColumnCount();
	    String col = String.valueOf(columnCount);
	    int count = fila.getCount();
	    String co = String.valueOf(count);
	    bd.close();  
	    return fila;
	} 


	static public void insertUF(Context context , String nombre, String valor)
	{
	    DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);
	    SQLiteDatabase db = dbh.getWritableDatabase();
    	ContentValues uf = new ContentValues();
	    uf.put("nombre", nombre);
	    uf.put("valor", valor);	        
	    if(db != null)
		{
		  	db.insert("UF", null, uf);		         
		}
	    db.close();  
	}

	static public void editUF(Context context, String nombre, String nuevoValor) 
	{  		
		DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);	
	    SQLiteDatabase bd= dbh.getReadableDatabase();       
	    ContentValues uf = new ContentValues();	    
	    uf.put("valor", nuevoValor);	    
	    int cant = bd.update("UF", uf , "nombre="+"'"+nombre+"'", null);
	    bd.close();
	}
	
	static public Cursor consultUF(Context context, String tipoEntidad) 
	{	
		DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);	
	    SQLiteDatabase bd= dbh.getReadableDatabase();        
	    Cursor fila= bd.rawQuery("select * from UF where nombre='"+tipoEntidad+"'",null);
	    int columnCount = fila.getColumnCount();
	    String col = String.valueOf(columnCount);
	    int count = fila.getCount();
	    String co = String.valueOf(count);
	    bd.close();  
	    return fila;
	} 
	
	static public void editPartidaPresupuestoReferencia(Context context,  String idPartida, String idPartidaNuevo)
	{
		DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);	
	    SQLiteDatabase bd= dbh.getReadableDatabase();       
	    ContentValues partida = new ContentValues();	    
	    partida.put("idPartida", idPartidaNuevo);	          
	    int cant = bd.update("PartidasPresupuesto", partida, "idPartida="+"'"+idPartida+"'", null);
	    bd.close();
	}
	
	static public void editMaterialesPartidaReferencia(Context context,  String idMaterial, String idMaterialNuevo) 
	{
		DBHelper dbh = new DBHelper(context, "DBSagrada31", null, 1);	
	    SQLiteDatabase bd= dbh.getReadableDatabase();       
	    ContentValues partida = new ContentValues();	    
	    partida.put("idMaterial", idMaterialNuevo);	          
	    int cant = bd.update("MaterialesPartida", partida, "idMaterial="+"'"+idMaterial+"'", null);
	    bd.close();
	}
		    
}
